/*
 * MIT License
 *
 * Copyright (c) 2023 芊芊墨客
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 *
 */

package com.zhangmeng.tools.utils;

import javafx.scene.image.Image;

import java.net.URL;

/**
 * @author : 芊芊墨客
 * @version : 1.0
 * @date : 2023-02-16 09:19
 */
public class ResourcesUtils {

    public static final String base_fxml = "/fxml/";

    public static URL getResource(String name) {
        String path = base_fxml + name + ".fxml";
        return ResourcesUtils.class.getResource(path);
    }

    public static Image getBg() {
        return new Image(ImagePath.path(ImagePath.ImagePathType.BACKGROUND_IMAGE));
    }

    public enum Menu {
        Md5("md5加密", 0),
        SpringSecurity("spring加密", 1),
        Jks_File("Jks_File", 2),
        user_password("user_info", 3),
        ;


        Menu(String title, int index) {
            this.title = title;
            this.index = index;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public int getIndex() {
            return index;
        }

        public void setIndex(int index) {
            this.index = index;
        }

        private String title;
        private int index;

    }

    public enum Player {

        Video("视频播放", 0),
        Music("音乐播放", 1),
        VipParser("vip解析", 2),
        MusicParser("音乐解析", 3),
        VideoTranscoder("视频转码",4)
        ;

        Player(String title, int index) {
            this.title = title;
            this.index = index;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public int getIndex() {
            return index;
        }

        public void setIndex(int index) {
            this.index = index;
        }

        private String title;
        private int index;
    }

    public enum SmallTools {
        Hex_16("16进制（Hex）", 0),
        Unicode("Unicode和字符串转换", 1),
        JWT_WEB("json-web-token", 2),
        COLOR_CHOOSE("颜色选择", 3),
        Qr_CODE("生成二维码", 4),
        Date_Query("日历", 5),
        Cron("cron表达式", 6),
        Mail("发送邮件", 7),
        TelePhone("手机号工具", 8),
        JSONView("json工具", 9),
        Maven_Install_Jar("maven安装jar", 10),
        Word_ocr("文字识别ocr", 11),
        Bar_Code("条形码识别", 12),
        Pdf_Ocr("pdf识别", 13),
        BatchUpdateFileName("批量修改文件名", 14),
        Capter_Screent("截图", 15),
        File_Edit("文件编辑器", 16),
        LayUI_Form_Gen("layui-from 表单生成", 17),
        LogConsole("日志输出", 18),
        EditPlusCode("edit-plus注册码", 19),
        MinioUpload("minio-upload文件上传", 20),
        ExcelRead("excel-read(表格读取)", 21),
        ;

        SmallTools(String title, int index) {
            this.title = title;
            this.index = index;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public int getIndex() {
            return index;
        }

        public void setIndex(int index) {
            this.index = index;
        }

        private String title;
        private int index;
    }

    public enum CodecTools {

        Base62("Base62编码解码", 0),
        Base64("Base64编码解码", 1),
        Base32("Base32编码解码", 2),
        MorseCoder("摩尔斯电码", 3),
        ;

        CodecTools(String title, int index) {
            this.title = title;
            this.index = index;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public int getIndex() {
            return index;
        }

        public void setIndex(int index) {
            this.index = index;
        }

        private String title;
        private int index;
    }

    public enum SqlTools {

        MySql_Code_Generate("mysql 代码生成", 0),
        MyBatis_plus_Generate("mybatis-plus 代码生成", 1),
        Json_To_JavaBean("json转javabean 代码生成", 2),
        Sql_Query("sql 查询", 3),
        ;

        SqlTools(String title, int index) {
            this.title = title;
            this.index = index;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public int getIndex() {
            return index;
        }

        public void setIndex(int index) {
            this.index = index;
        }

        private String title;
        private int index;
    }

    public enum NetWorkTools {

        Netty_Client_Websocket("netty websocket 客户端", 0),
        ;

        NetWorkTools(String title, int index) {
            this.title = title;
            this.index = index;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public int getIndex() {
            return index;
        }

        public void setIndex(int index) {
            this.index = index;
        }

        private String title;
        private int index;
    }

    public enum HttpTools {

        Http_Request("http 请求工具", 0),
        Http_Upload("http 上传工具", 1),
        Http_DownLoad("http 下载工具", 2),
        ;

        HttpTools(String title, int index) {
            this.title = title;
            this.index = index;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public int getIndex() {
            return index;
        }

        public void setIndex(int index) {
            this.index = index;
        }

        private String title;
        private int index;
    }

    public enum ServerTools {

        Http_Server("Http Server工具", 0),
        Ftp_Server("Ftp Server工具", 1),
        SSH_Client("ssh 连接工具", 2),
        Socket_Server("socket Server", 3),
        Socket_client_aio("aio socket client",4),
        Socket_server_aio("aio socket server",5),
        Socket_server_nio("nio socket server",6),
        Socket_client_nio("nio socket client",7),
        Web_Socket_client("web socket client",8),
        ;

        ServerTools(String title, int index) {
            this.title = title;
            this.index = index;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public int getIndex() {
            return index;
        }

        public void setIndex(int index) {
            this.index = index;
        }

        private String title;
        private int index;
    }

    public enum GoTools {

        Json_Struct("json生成结构体", 0),
        Mysql_Struct("mysql生成结构体", 1),
        ;

        GoTools(String title, int index) {
            this.title = title;
            this.index = index;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public int getIndex() {
            return index;
        }

        public void setIndex(int index) {
            this.index = index;
        }

        private String title;
        private int index;
    }

    public enum EditorList {

        Ace_JS("ace.js 编辑器", 0),
        Monaco_JS("monaco.js 编辑器", 1),
        CodeMirror_JS("codemirror.js 编辑器", 2),
        Timi_Fx("timi-fx 编辑器",3),
        Swing("swing 编辑器",4),
        ;

        EditorList(String title, int index) {
            this.title = title;
            this.index = index;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public int getIndex() {
            return index;
        }

        public void setIndex(int index) {
            this.index = index;
        }

        private String title;
        private int index;
    }


    public enum ChatTools {

        Chat_App("聊天应用", 0),
        ;

        ChatTools(String title, int index) {
            this.title = title;
            this.index = index;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public int getIndex() {
            return index;
        }

        public void setIndex(int index) {
            this.index = index;
        }

        private String title;
        private int index;
    }
}
